home *** CD-ROM | disk | FTP | other *** search
/ Aminet 37 / Aminet 37 (2000)(Schatztruhe)[!][Jun 2000].iso / Aminet / dev / misc / FD2Pragma.lha / FD2Pragma / UseFD2Pragma < prev    next >
Text File  |  2000-04-01  |  10KB  |  341 lines

  1. ; $VER: UseFD2Pragma 1.1 (26.03.2000) (Freeware) by Dirk Stöcker <stoecker@amigaworld.com>
  2. RequestChoice "Select the language you want to make files for"  "1: C (pragmas, protos, stubs, linker libs)*n2: Pascal (stubs, linker libs, units)*n3: Assembler (lvo files)*n4: Basic (BMAP files)*n*n5: FD files" 1 2 3 4 5 >ENV:UseFDA1
  3.  
  4. IF $UseFDA1 EQ 0        ;**** FD file ****
  5.   RequestFile TITLE "Select the pragma input file" >ENV:UseFDInFile
  6.   RequestFile TITLE "Select the output drawer (or file)" >ENV:UseFDOutFile
  7.   FD2Pragma SPECIAL 200 INFILE $UseFDInFile TO $UseFDOutFile
  8.   Skip CleanUp
  9. EndIF
  10.  
  11. IF $UseFDA1 EQ 1        ;**** C ****
  12.   RequestChoice "Select the file type" "1: pragma files*n2: stubs, link library*n3: local libbase stubs*n4: protos*n5: GCC stuff*n6: PPC stuff (GCC, SAS-C, proto)*n7: VBCC stuff (68K, WOS, PPC)" 1 2 3 4 5 6 7 >ENV:UseFDA2
  13.  
  14.   IF $UseFDA2 EQ 1
  15.     Set UseFDMode 1
  16.     RequestChoice "Select the pragma type" "1: Aztec*n2: DICE*n3: SAS*n4: MAXON*n5: STORM*n6: all [default]*n7: all + GCC redirect*n8: GCC redirect" 1 2 3 4 5 6 7 8 >ENV:UseFDA3
  17.     IF $UseFDA3 EQ 1
  18.       Set UseFDSPECIAL 1
  19.     EndIF
  20.     IF $UseFDA3 EQ 2
  21.       Set UseFDSPECIAL 2
  22.     EndIF
  23.     IF $UseFDA3 EQ 3
  24.       Set UseFDSPECIAL 3
  25.     EndIF
  26.     IF $UseFDA3 EQ 4
  27.       Set UseFDSPECIAL 4
  28.     EndIF
  29.     IF $UseFDA3 EQ 5
  30.       Set UseFDSPECIAL 5
  31.     EndIF
  32.     IF $UseFDA3 EQ 6
  33.       Set UseFDSPECIAL 6
  34.     EndIF
  35.     IF $UseFDA3 EQ 7
  36.       Set UseFDSPECIAL 7
  37.     EndIF
  38.     IF $UseFDA3 EQ 0
  39.       Set UseFDSPECIAL 8
  40.       Set UseFDMode 0
  41.     EndIF
  42.   EndIF
  43.   If $UseFDA2 EQ 2
  44.     Set UseFDMode 2
  45.     RequestChoice "Select the stub type" "1: C text*n2: assembler text*n3: link library" 1 2 3 >ENV:UseFDA3
  46.     IF $UseFDA3 EQ 1
  47.       Set UseFDSPECIAL 10
  48.       Set UseFDMode 0
  49.     EndIF
  50.     IF $UseFDA3 EQ 2
  51.       Set UseFDSPECIAL 11
  52.     EndIF
  53.     IF $UseFDA3 EQ 0
  54.       Set UseFDSPECIAL 12
  55.     EndIF
  56.   EndIF
  57.   If $UseFDA2 EQ 3
  58.     Set UseFDMode 2
  59.     RequestChoice "Select the type" "1: register call*n2: stack call" 1 2 >ENV:UseFDA3
  60.     IF $UseFDA3 EQ 1
  61.       Set UseFDSPECIAL 13
  62.     EndIF
  63.     IF $UseFDA3 EQ 0
  64.       Set UseFDSPECIAL 14
  65.     EndIF
  66.   EndIF
  67.   If $UseFDA2 EQ 4
  68.     RequestChoice "Select the proto type" "1: with pragma/..._lib.h call*n2: with pragma/..._pragmas.h call*n3: with pragmas/..._lib.h call*n4: with pragmas/..._pragmas.h call*n5: with local/..._loc.h call*n6: all compilers*n7: GNU-C compiler only*n8: without lib definition" 1 2 3 4 5 6 7 >ENV:UseFDA3
  69.     IF $UseFDA3 EQ 1
  70.       Set UseFDSPECIAL 30
  71.     EndIF
  72.     IF $UseFDA3 EQ 2
  73.       Set UseFDSPECIAL 31
  74.     EndIF
  75.     IF $UseFDA3 EQ 3
  76.       Set UseFDSPECIAL 32
  77.     EndIF
  78.     IF $UseFDA3 EQ 4
  79.       Set UseFDSPECIAL 33
  80.     EndIF
  81.     IF $UseFDA3 EQ 5
  82.       Set UseFDSPECIAL 34
  83.     EndIF
  84.     IF $UseFDA3 EQ 6
  85.       Set UseFDSPECIAL 35
  86.     EndIF
  87.     IF $UseFDA3 EQ 7
  88.       Set UseFDSPECIAL 36
  89.     EndIF
  90.     IF $UseFDA3 EQ 0
  91.       Set UseFDSPECIAL 37
  92.     EndIF
  93.   EndIF
  94.   If $UseFDA2 EQ 5
  95.     Set UseFDMode 2
  96.     RequestChoice "Select inline file type" "1: new*n2: old*n3: lib stubs*n4: new style macros*n5: new style inlines" 1 2 3 4 5 >ENV:UseFDA3
  97.     IF $UseFDA3 EQ 1
  98.       Set UseFDSPECIAL 40
  99.     EndIF
  100.     IF $UseFDA3 EQ 2
  101.       Set UseFDSPECIAL 41
  102.     EndIF
  103.     IF $UseFDA3 EQ 3
  104.       Set UseFDSPECIAL 42
  105.     EndIF
  106.     IF $UseFDA3 EQ 4
  107.       Set UseFDSPECIAL 43
  108.     EndIF
  109.     IF $UseFDA3 EQ 0
  110.       Set UseFDSPECIAL 44
  111.     EndIF
  112.   EndIF
  113.   If $UseFDA2 EQ 6
  114.     Set UseFDMode 2
  115.     RequestChoice "Select PPC file type" "1: new inlines*n2: old inlines*n3: lib stub inlines*n4: SAS-C PPC file*n5: PPC proto file" 1 2 3 4 5 >ENV:UseFDA3
  116.     IF $UseFDA3 EQ 1
  117.       Set UseFDSPECIAL 50
  118.     EndIF
  119.     IF $UseFDA3 EQ 2
  120.       Set UseFDSPECIAL 51
  121.     EndIF
  122.     IF $UseFDA3 EQ 3
  123.       Set UseFDSPECIAL 52
  124.     EndIF
  125.     IF $UseFDA3 EQ 4
  126.       Set UseFDSPECIAL 53
  127.     EndIF
  128.     IF $UseFDA3 EQ 0
  129.       Set UseFDSPECIAL 42
  130.       Set UseFDMode 0
  131.     EndIF
  132.   EndIF
  133.   If $UseFDA2 EQ 0
  134.     Set UseFDMode 2
  135.     RequestChoice "Select file type" "1: 68K inlines*n2: WOS stubs (ASM)*n3: WOS stubs (ASM, libbase)*n4: WOS stubs (link)*n5: WOS stubs (link, libbase)*n6: PPC stubs (ASM)*n7: PPC stubs(link)" 1 2 3 4 5 6 7 >ENV:UseFDA3
  136.     IF $UseFDA3 EQ 1
  137.       Set UseFDSPECIAL 70
  138.       Set UseFDMode 0
  139.     EndIF
  140.     IF $UseFDA3 EQ 2
  141.       Set UseFDSPECIAL 71
  142.     EndIF
  143.     IF $UseFDA3 EQ 3
  144.       Set UseFDSPECIAL 72
  145.     EndIF
  146.     IF $UseFDA3 EQ 4
  147.       Set UseFDSPECIAL 73
  148.     EndIF
  149.     IF $UseFDA3 EQ 5
  150.       Set UseFDSPECIAL 74
  151.     EndIF
  152.     IF $UseFDA3 EQ 6
  153.       Set UseFDSPECIAL 75
  154.     EndIF
  155.     IF $UseFDA3 EQ 0
  156.       Set UseFDSPECIAL 76
  157.     EndIF
  158.   EndIF
  159. EndIF
  160.  
  161. IF $UseFDA1 EQ 2        ;**** Pascal ****
  162.   RequestChoice "Select the file type" "1: stub-functions - assembler text*n2: stub-functions - link library*n3: FPC unit text" 1 2 3 >ENV:UseFDA2
  163.  
  164.   IF $UseFDA2 EQ 1
  165.     Set UseFDSPECIAL 15        ; stub-functions for Pascal - assembler text
  166.   EndIF
  167.  
  168.   IF $UseFDA2 EQ 2
  169.     Set UseFDSPECIAL 16        ; stub-functions for Pascal - link library
  170.   EndIF
  171.  
  172.   IF $UseFDA2 EQ 0
  173.     Set UseFDSPECIAL 60        ; FPC pascal unit text
  174.   EndIF
  175.  
  176.   Set UseFDNeedCLIB 1
  177. EndIF
  178.  
  179. IF $UseFDA1 EQ 3        ;**** Assembler ****
  180.   RequestChoice "Select the file type" "1: lvo _lvo.i file*n2: lvo _lib.i file*n3: lvo _lvo.i file no XDEF*n4: lvo _lib.i file no XDEF*n5: link library" 1 2 3 4 5 >ENV:UseFDA2
  181.  
  182.   IF $UseFDA2 EQ 1
  183.     Set UseFDSPECIAL 20        ; assembler lvo _lvo.i file
  184.   EndIF
  185.  
  186.   IF $UseFDA2 EQ 2
  187.     Set UseFDSPECIAL 21        ; assembler lvo _lib.i file
  188.   EndIF
  189.  
  190.   IF $UseFDA2 EQ 3
  191.     Set UseFDSPECIAL 22        ; assembler lvo _lvo.i file no XDEF
  192.   EndIF
  193.  
  194.   IF $UseFDA2 EQ 4
  195.     Set UseFDSPECIAL 23        ; assembler lvo _lib.i file no XDEF
  196.   EndIF
  197.  
  198.   IF $UseFDA2 EQ 0
  199.     Set UseFDSPECIAL 24        ; assembler lvo link library
  200.   EndIF
  201.   
  202.   Set UseFDNeedCLIB 0
  203. EndIF
  204.  
  205. IF $UseFDA1 EQ 4        ;**** Basic ****
  206.   Set UseFDSPECIAL 17        ; BMAP file for AmigaBASIC and MaxonBASIC
  207.   Set UseFDNeedCLIB 0
  208. EndIF
  209.  
  210. ; **** scan options here ****
  211. Set UseFDCOMMENT ""
  212. Set UseFDEXTERNC ""
  213. Set UseFDFPUONLY ""
  214. Set UseFDNEWSYNTAX ""
  215. Set UseFDNOFPU ""
  216. Set UseFDNOPPC ""
  217. Set UseFDNOSYMBOL ""
  218. Set UseFDOPT040 ""
  219. Set UseFDPPCONLY ""
  220. Set UseFDPRIVATE ""
  221. Set UseFDSECTION ""
  222. Set UseFDSMALLDATA ""
  223. Set UseFDSORTED ""
  224. Set UseFDSTORMFD ""
  225. Set UseFDUSESYSCALL ""
  226.  
  227. Lab ScanOpts
  228. RequestChoice "Select Option" "See Dokumentation for Option description.*n*nThis request reappears, as long as you do not*nselect 'XX'*n 1=COMMENT     2=EXTERNC     3=FPUONLY*n 4=NEWSYNTAX   5=NOFPU       6=NOPPC*n 7=NOSYMBOL   8=OPT040      9=PPCONLY*n10=PRIVATE    11=SECTION    12=SMALLDATA*n13=SORTED     14=STORMFD    15=USESYSCALL" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 XX >ENV:UseFDOption
  229.  
  230. IF $UseFDOption EQ 0
  231.  Skip EndScanOpts
  232. EndIf
  233. IF $UseFDOption EQ 1
  234.  Set UseFDCOMMENT COMMENT
  235. EndIf
  236. IF $UseFDOption EQ 2
  237.  Set UseFDEXTERNC EXTERNC
  238. EndIf
  239. IF $UseFDOption EQ 3
  240.  Set UseFDFPUONLY FPUONLY
  241. EndIf
  242. IF $UseFDOption EQ 4
  243.  Set UseFDNEWSYNTAX NEWSYNTAX
  244. EndIf
  245. IF $UseFDOption EQ 5
  246.  Set UseFDNOFPU NOFPU
  247. EndIf
  248. IF $UseFDOption EQ 6
  249.  Set UseFDNOPPC NOPPC
  250. EndIf
  251. IF $UseFDOption EQ 7
  252.  Set UseFDNOSYMBOL NOSYMBOL
  253. EndIf
  254. IF $UseFDOption EQ 8
  255.  Set UseFDOPT040 OPT040
  256. EndIf
  257. IF $UseFDOption EQ 9
  258.  Set UseFDPPCONLY PPCONLY
  259. EndIf
  260. IF $UseFDOption EQ 10
  261.  Set UseFDPRIVATE PRIVATE
  262. EndIf
  263. IF $UseFDOption EQ 11
  264.  Set UseFDSECTION SECTION
  265. EndIf
  266. IF $UseFDOption EQ 12
  267.  Set UseFDSMALLDATA SMALLDATA
  268. EndIf
  269. IF $UseFDOption EQ 13
  270.  Set UseFDSORTED SORTED
  271. EndIf
  272. IF $UseFDOption EQ 14
  273.  Set UseFDSTORMFD STORMFD
  274. EndIf
  275. IF $UseFDOption EQ 15
  276.  Set UseFDUSESYSCALL USESYSCALL
  277. EndIf
  278.  
  279. Skip ScanOpts BACK
  280.  
  281. Lab EndScanOpts
  282. Set UseFDArgs "" $UseFDCOMMENT $UseFDEXTERNC $UseFDFPUONLY $UseFDNEWSYNTAX $UseFDNOFPU $UseFDNOPPC $UseFDNOSYMBOL $UseFDOPT040 $UseFDPPCONLY $UseFDPRIVATE $UseFDSECTION $UseFDSMALLDATA $UseFDSORTED $UseFDSTORMFD $UseFDUSESYSCALL
  283.  
  284. RequestChoice "Do you want to insert a header?" "Select*nHEADERFILE to enter a file or*nSCANHEADER to scan the destionation file." HEADERFILE SCANHEADER NoHeader >ENV:UseFDHeader
  285. IF $UseFDHeader EQ 1
  286.   RequestFile TITLE "Select the header file" >ENV:UseFDHeaderFile
  287.   Set UseFDArgs $UseFDArgs HEADER $UseFDHeaderFile
  288. EndIF
  289.  
  290. IF $UseFDHeader EQ 2
  291.   Set UseFDArgs $UseFDArgs HEADER=@
  292. EndIF
  293.  
  294. IF $UseFDMode EQ 1
  295.   RequestChoice "Select definition mode" "1: _INCLUDE_PRAGMA_..._LIB_H [default]*n2: _PRAGMAS_..._LIB_H*n3: _PRAGMAS_..._PRAGMAS_H*n4: no definition" 1 2 3 4 >ENV:UseFDMode2
  296.   IF $UseFDMode2 EQ 1
  297.     Set UseFDArgs $UseFDArgs MODE 1
  298.   EndIF
  299.   IF $UseFDMode2 EQ 2
  300.     Set UseFDArgs $UseFDArgs MODE 2
  301.   EndIF
  302.   IF $UseFDMode2 EQ 3
  303.     Set UseFDArgs $UseFDArgs MODE 3
  304.   EndIF
  305.   IF $UseFDMode2 EQ 0
  306.     Set UseFDArgs $UseFDArgs MODE 4
  307.   EndIF
  308. EndIF
  309.  
  310. IF $UseFDMode EQ 2
  311.   RequestChoice "Select work mode" "1: all functions, normal interface*n2: only tag-functions, tagcall interface*n3: all functions, both interfaces [default]" 1 2 3 >ENV:UseFDMode2
  312.   IF $UseFDMode2 EQ 1
  313.     Set UseFDArgs $UseFDArgs MODE 1
  314.   EndIF
  315.   IF $UseFDMode2 EQ 2
  316.     Set UseFDArgs $UseFDArgs MODE 2
  317.   EndIF
  318.   IF $UseFDMode2 EQ 0
  319.     Set UseFDArgs $UseFDArgs MODE 3
  320.   EndIF
  321. EndIF
  322.  
  323. RequestFile TITLE "Select the FD input file" >ENV:UseFDInFile
  324. IF $UseFDNeedCLIB EQ 1
  325.   RequestFile TITLE "Select the clib prototype file" >ENV:UseFDCLIB
  326. EndIF
  327. RequestFile TITLE "Select the output drawer (or file)" >ENV:UseFDOutFile
  328.  
  329. IF $UseFDNeedCLIB EQ 1
  330.  Set UseFDArgs $UseFDArgs CLIB $UseFDCLIB
  331. EndIF
  332.  
  333. Echo "Executing following command:"
  334. Echo "FD2Pragma SPECIAL" $UseFDSPECIAL "INFILE" $UseFDInFile "TO" $UseFDOutFile $UseFDArgs
  335.  
  336. FD2Pragma SPECIAL $UseFDSPECIAL INFILE $UseFDInFile TO $UseFDOutFile $UseFDArgs
  337.  
  338. Lab CleanUp
  339. Delete >NIL: ENV:UseFD#?
  340. Echo "All Done. You can close this window now."
  341.